home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / net / v7.expr < prev    next >
Mailbox/MIME Entity  |  1987-04-03  |  3.2 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: Mailbox/MIME Entity (archive/mbox).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Mailbox/MIME Entity (archive/mbox) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file Mailbox text, 1st line "From erikb@cs.vu.nl Fri Apr 3 01:17:58 1987" default
99% file C source text default
98% file C source, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% detectItEasy Format: Plain text[LF] default
100% xdgMime application/mbox default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 20 65 72 69 | 6b 62 40 63 73 2e 76 75 |From eri|kb@cs.vu|
|00000010| 2e 6e 6c 20 46 72 69 20 | 41 70 72 20 20 33 20 30 |.nl Fri |Apr 3 0|
|00000020| 31 3a 31 37 3a 35 38 20 | 31 39 38 37 0a 50 61 74 |1:17:58 |1987.Pat|
|00000030| 68 3a 20 73 65 69 73 6d | 6f 21 6d 63 76 61 78 21 |h: seism|o!mcvax!|
|00000040| 62 6f 74 74 65 72 21 65 | 72 69 6b 62 0a 46 72 6f |botter!e|rikb.Fro|
|00000050| 6d 3a 20 65 72 69 6b 62 | 40 63 73 2e 76 75 2e 6e |m: erikb|@cs.vu.n|
|00000060| 6c 20 28 45 72 69 6b 20 | 42 61 61 6c 62 65 72 67 |l (Erik |Baalberg|
|00000070| 65 6e 29 0a 4e 65 77 73 | 67 72 6f 75 70 73 3a 20 |en).News|groups: |
|00000080| 63 6f 6d 70 2e 6f 73 2e | 6d 69 6e 69 78 0a 53 75 |comp.os.|minix.Su|
|00000090| 62 6a 65 63 74 3a 20 65 | 78 70 72 28 31 29 20 73 |bject: e|xpr(1) s|
|000000a0| 6f 75 72 63 65 0a 4d 65 | 73 73 61 67 65 2d 49 44 |ource.Me|ssage-ID|
|000000b0| 3a 20 3c 31 31 33 33 40 | 62 6f 74 74 65 72 2e 63 |: <1133@|botter.c|
|000000c0| 73 2e 76 75 2e 6e 6c 3e | 0a 44 61 74 65 3a 20 33 |s.vu.nl>|.Date: 3|
|000000d0| 20 41 70 72 20 38 37 20 | 30 36 3a 31 37 3a 35 38 | Apr 87 |06:17:58|
|000000e0| 20 47 4d 54 0a 53 65 6e | 64 65 72 3a 20 72 65 6d | GMT.Sen|der: rem|
|000000f0| 6f 74 65 40 63 73 2e 76 | 75 2e 6e 6c 0a 52 65 70 |ote@cs.v|u.nl.Rep|
|00000100| 6c 79 2d 54 6f 3a 20 65 | 72 69 6b 62 40 63 73 2e |ly-To: e|rikb@cs.|
|00000110| 76 75 2e 6e 6c 20 28 45 | 72 69 6b 20 42 61 61 6c |vu.nl (E|rik Baal|
|00000120| 62 65 72 67 65 6e 29 0a | 44 69 73 74 72 69 62 75 |bergen).|Distribu|
|00000130| 74 69 6f 6e 3a 20 77 6f | 72 6c 64 0a 4f 72 67 61 |tion: wo|rld.Orga|
|00000140| 6e 69 7a 61 74 69 6f 6e | 3a 20 56 2e 55 2e 20 49 |nization|: V.U. I|
|00000150| 6e 66 6f 72 6d 61 74 69 | 63 61 2c 20 41 6d 73 74 |nformati|ca, Amst|
|00000160| 65 72 64 61 6d 0a 4c 69 | 6e 65 73 3a 20 31 38 39 |erdam.Li|nes: 189|
|00000170| 0a 0a 48 65 72 65 27 73 | 20 74 68 65 20 73 6f 75 |..Here's| the sou|
|00000180| 72 63 65 20 66 6f 72 20 | 65 78 70 72 28 31 29 2e |rce for |expr(1).|
|00000190| 20 4c 69 6b 65 20 74 65 | 73 74 28 31 29 2c 20 74 | Like te|st(1), t|
|000001a0| 68 69 73 20 70 72 6f 67 | 72 61 6d 20 77 61 73 20 |his prog|ram was |
|000001b0| 6e 6f 74 20 70 61 72 74 | 0a 6f 66 20 74 68 65 20 |not part|.of the |
|000001c0| 4d 69 6e 69 78 20 64 69 | 73 74 72 69 62 75 74 69 |Minix di|stributi|
|000001d0| 6f 6e 2e 20 55 6e 66 6f | 72 74 75 6e 61 74 65 6c |on. Unfo|rtunatel|
|000001e0| 79 2c 20 49 20 64 69 64 | 6e 27 74 20 68 61 76 65 |y, I did|n't have|
|000001f0| 20 74 69 6d 65 20 74 6f | 20 69 6d 70 6c 65 6d 65 | time to| impleme|
|00000200| 6e 74 0a 74 68 65 20 27 | 3a 27 20 6f 70 65 72 61 |nt.the '|:' opera|
|00000210| 74 6f 72 2e 20 4d 61 79 | 62 65 20 74 68 65 72 65 |tor. May|be there|
|00000220| 27 73 20 73 6f 6d 65 6f | 6e 65 20 65 6c 73 65 20 |'s someo|ne else |
|00000230| 6f 75 74 20 74 68 65 72 | 65 20 77 68 6f 20 77 69 |out ther|e who wi|
|00000240| 6c 6c 20 64 6f 20 74 68 | 65 20 6a 6f 62 2e 2e 2e |ll do th|e job...|
|00000250| 0a 0a 45 72 69 6b 20 42 | 61 61 6c 62 65 72 67 65 |..Erik B|aalberge|
|00000260| 6e 0a 2d 2d 20 63 75 74 | 20 68 65 72 65 20 2d 2d |n.-- cut| here --|
|00000270| 0a 2f 2a 20 65 78 70 72 | 28 31 29 20 20 2d 2d 20 |./* expr|(1) -- |
|00000280| 20 61 75 74 68 6f 72 20 | 45 72 69 6b 20 42 61 61 | author |Erik Baa|
|00000290| 6c 62 65 72 67 65 6e 20 | 2a 2f 0a 0a 2f 2a 20 65 |lbergen |*/../* e|
|000002a0| 78 70 72 20 61 63 63 65 | 70 74 73 20 74 68 65 20 |xpr acce|pts the |
|000002b0| 66 6f 6c 6c 6f 77 69 6e | 67 20 67 72 61 6d 6d 61 |followin|g gramma|
|000002c0| 72 3a 0a 09 65 78 70 72 | 20 3a 3a 3d 20 65 78 70 |r:..expr| ::= exp|
|000002d0| 72 20 6f 70 65 72 61 74 | 6f 72 20 65 78 70 72 20 |r operat|or expr |
|000002e0| 7c 20 22 28 22 20 65 78 | 70 72 20 22 29 22 20 3b || "(" ex|pr ")" ;|
|000002f0| 0a 20 20 77 68 65 72 65 | 20 74 68 65 20 70 72 69 |. where| the pri|
|00000300| 6f 72 69 74 79 20 6f 66 | 20 74 68 65 20 6f 70 65 |ority of| the ope|
|00000310| 72 61 74 6f 72 73 20 69 | 73 20 74 61 6b 65 6e 20 |rators i|s taken |
|00000320| 63 61 72 65 20 6f 66 2e | 0a 20 20 54 68 65 20 72 |care of.|. The r|
|00000330| 65 73 75 6c 74 69 6e 67 | 20 76 61 6c 75 65 20 69 |esulting| value i|
|00000340| 73 20 70 72 69 6e 74 65 | 64 20 6f 6e 20 73 74 64 |s printe|d on std|
|00000350| 6f 75 74 2e 0a 20 20 4e | 6f 74 65 20 74 68 61 74 |out.. N|ote that|
|00000360| 20 74 68 65 20 22 3a 22 | 2d 6f 70 65 72 61 74 6f | the ":"|-operato|
|00000370| 72 20 69 73 20 6e 6f 74 | 20 69 6d 70 6c 65 6d 65 |r is not| impleme|
|00000380| 6e 74 65 64 2e 0a 2a 2f | 0a 0a 23 64 65 66 69 6e |nted..*/|..#defin|
|00000390| 65 20 45 4f 49 09 30 0a | 23 64 65 66 69 6e 65 20 |e EOI.0.|#define |
|000003a0| 4f 52 09 31 0a 23 64 65 | 66 69 6e 65 20 41 4e 44 |OR.1.#de|fine AND|
|000003b0| 09 32 0a 23 64 65 66 69 | 6e 65 20 4c 54 09 33 0a |.2.#defi|ne LT.3.|
|000003c0| 23 64 65 66 69 6e 65 20 | 4c 45 09 34 0a 23 64 65 |#define |LE.4.#de|
|000003d0| 66 69 6e 65 20 45 51 09 | 35 0a 23 64 65 66 69 6e |fine EQ.|5.#defin|
|000003e0| 65 20 4e 45 09 36 0a 23 | 64 65 66 69 6e 65 20 47 |e NE.6.#|define G|
|000003f0| 45 09 37 0a 23 64 65 66 | 69 6e 65 20 47 54 09 38 |E.7.#def|ine GT.8|
|00000400| 0a 23 64 65 66 69 6e 65 | 20 50 4c 55 53 09 39 0a |.#define| PLUS.9.|
|00000410| 23 64 65 66 69 6e 65 20 | 4d 49 4e 55 53 09 31 30 |#define |MINUS.10|
|00000420| 0a 23 64 65 66 69 6e 65 | 20 54 49 4d 45 53 09 31 |.#define| TIMES.1|
|00000430| 31 0a 23 64 65 66 69 6e | 65 20 44 49 56 09 31 32 |1.#defin|e DIV.12|
|00000440| 0a 23 64 65 66 69 6e 65 | 20 4d 4f 44 09 31 33 0a |.#define| MOD.13.|
|00000450| 23 64 65 66 69 6e 65 20 | 43 4f 4c 4f 4e 09 31 34 |#define |COLON.14|
|00000460| 0a 23 64 65 66 69 6e 65 | 20 4c 50 41 52 45 4e 09 |.#define| LPAREN.|
|00000470| 31 35 0a 23 64 65 66 69 | 6e 65 20 52 50 41 52 45 |15.#defi|ne RPARE|
|00000480| 4e 09 31 36 0a 23 64 65 | 66 69 6e 65 20 4f 50 45 |N.16.#de|fine OPE|
|00000490| 52 41 4e 44 09 32 30 0a | 0a 23 64 65 66 69 6e 65 |RAND.20.|.#define|
|000004a0| 20 4d 41 58 50 52 49 4f | 09 36 0a 0a 73 74 72 75 | MAXPRIO|.6..stru|
|000004b0| 63 74 20 6f 70 20 7b 0a | 09 63 68 61 72 20 2a 6f |ct op {.|.char *o|
|000004c0| 70 5f 74 65 78 74 3b 0a | 09 73 68 6f 72 74 20 6f |p_text;.|.short o|
|000004d0| 70 5f 6e 75 6d 2c 20 6f | 70 5f 70 72 69 6f 3b 0a |p_num, o|p_prio;.|
|000004e0| 7d 20 6f 70 73 5b 5d 20 | 3d 20 7b 0a 09 7b 22 7c |} ops[] |= {..{"||
|000004f0| 22 2c 09 4f 52 2c 09 36 | 7d 2c 0a 09 7b 22 26 22 |",.OR,.6|},..{"&"|
|00000500| 2c 09 41 4e 44 2c 09 35 | 7d 2c 0a 09 7b 22 3c 22 |,.AND,.5|},..{"<"|
|00000510| 2c 09 4c 54 2c 09 34 7d | 2c 0a 09 7b 22 3c 3d 22 |,.LT,.4}|,..{"<="|
|00000520| 2c 09 4c 45 2c 09 34 7d | 2c 0a 09 7b 22 3d 22 2c |,.LE,.4}|,..{"=",|
|00000530| 09 45 51 2c 09 34 7d 2c | 0a 09 7b 22 21 3d 22 2c |.EQ,.4},|..{"!=",|
|00000540| 09 4e 45 2c 09 34 7d 2c | 0a 09 7b 22 3e 3d 22 2c |.NE,.4},|..{">=",|
|00000550| 09 47 45 2c 09 34 7d 2c | 0a 09 7b 22 3e 22 2c 09 |.GE,.4},|..{">",.|
|00000560| 47 54 2c 09 34 7d 2c 0a | 09 7b 22 2b 22 2c 09 50 |GT,.4},.|.{"+",.P|
|00000570| 4c 55 53 2c 09 33 7d 2c | 0a 09 7b 22 2d 22 2c 09 |LUS,.3},|..{"-",.|
|00000580| 4d 49 4e 55 53 2c 09 33 | 7d 2c 0a 09 7b 22 2a 22 |MINUS,.3|},..{"*"|
|00000590| 2c 09 54 49 4d 45 53 2c | 09 32 7d 2c 0a 09 7b 22 |,.TIMES,|.2},..{"|
|000005a0| 2f 22 2c 09 44 49 56 2c | 09 32 7d 2c 0a 09 7b 22 |/",.DIV,|.2},..{"|
|000005b0| 25 22 2c 09 4d 4f 44 2c | 09 32 7d 2c 0a 09 2f 2a |%",.MOD,|.2},../*|
|000005c0| 20 7b 22 3a 22 2c 09 43 | 4f 4c 4f 4e 2c 09 31 7d | {":",.C|OLON,.1}|
|000005d0| 2c 20 2a 2f 0a 09 7b 22 | 28 22 2c 09 4c 50 41 52 |, */..{"|(",.LPAR|
|000005e0| 45 4e 2c 09 30 7d 2c 0a | 09 7b 22 29 22 2c 09 52 |EN,.0},.|.{")",.R|
|000005f0| 50 41 52 45 4e 2c 09 30 | 7d 2c 0a 09 7b 30 2c 20 |PAREN,.0|},..{0, |
|00000600| 30 2c 20 30 7d 0a 7d 3b | 0a 0a 6c 6f 6e 67 20 65 |0, 0}.};|..long e|
|00000610| 76 61 6c 28 29 2c 20 65 | 78 70 72 28 29 3b 0a 63 |val(), e|xpr();.c|
|00000620| 68 61 72 20 2a 70 72 6f | 67 3b 0a 63 68 61 72 20 |har *pro|g;.char |
|00000630| 2a 2a 69 70 3b 0a 73 74 | 72 75 63 74 20 6f 70 20 |**ip;.st|ruct op |
|00000640| 2a 69 70 5f 6f 70 3b 0a | 0a 6d 61 69 6e 28 61 72 |*ip_op;.|.main(ar|
|00000650| 67 63 2c 20 61 72 67 76 | 29 0a 09 63 68 61 72 20 |gc, argv|)..char |
|00000660| 2a 61 72 67 76 5b 5d 3b | 0a 7b 0a 09 6c 6f 6e 67 |*argv[];|.{..long|
|00000670| 20 72 65 73 3b 0a 0a 09 | 70 72 6f 67 20 3d 20 61 | res;...|prog = a|
|00000680| 72 67 76 5b 30 5d 3b 0a | 09 69 70 20 3d 20 26 61 |rgv[0];.|.ip = &a|
|00000690| 72 67 76 5b 31 5d 3b 0a | 09 72 65 73 20 3d 20 65 |rgv[1];.|.res = e|
|000006a0| 78 70 72 28 6c 65 78 28 | 2a 69 70 29 2c 20 4d 41 |xpr(lex(|*ip), MA|
|000006b0| 58 50 52 49 4f 29 3b 0a | 09 69 66 20 28 2a 2b 2b |XPRIO);.|.if (*++|
|000006c0| 69 70 20 21 3d 20 30 29 | 0a 09 09 73 79 6e 74 61 |ip != 0)|...synta|
|000006d0| 78 28 29 3b 0a 09 70 72 | 69 6e 74 66 28 22 25 6c |x();..pr|intf("%l|
|000006e0| 64 5c 6e 22 2c 20 72 65 | 73 29 3b 0a 09 65 78 69 |d\n", re|s);..exi|
|000006f0| 74 28 30 29 3b 0a 7d 0a | 0a 6c 65 78 28 73 29 0a |t(0);.}.|.lex(s).|
|00000700| 09 72 65 67 69 73 74 65 | 72 20 63 68 61 72 20 2a |.registe|r char *|
|00000710| 73 3b 0a 7b 0a 09 72 65 | 67 69 73 74 65 72 20 73 |s;.{..re|gister s|
|00000720| 74 72 75 63 74 20 6f 70 | 20 2a 6f 70 20 3d 20 6f |truct op| *op = o|
|00000730| 70 73 3b 0a 0a 09 69 66 | 20 28 73 20 3d 3d 20 30 |ps;...if| (s == 0|
|00000740| 29 20 7b 0a 09 09 69 70 | 5f 6f 70 20 3d 20 30 3b |) {...ip|_op = 0;|
|00000750| 0a 09 09 72 65 74 75 72 | 6e 20 45 4f 49 3b 0a 09 |...retur|n EOI;..|
|00000760| 7d 0a 09 77 68 69 6c 65 | 20 28 6f 70 2d 3e 6f 70 |}..while| (op->op|
|00000770| 5f 74 65 78 74 29 20 7b | 0a 09 09 69 66 20 28 73 |_text) {|...if (s|
|00000780| 74 72 63 6d 70 28 73 2c | 20 6f 70 2d 3e 6f 70 5f |trcmp(s,| op->op_|
|00000790| 74 65 78 74 29 20 3d 3d | 20 30 29 20 7b 0a 09 09 |text) ==| 0) {...|
|000007a0| 09 69 70 5f 6f 70 20 3d | 20 6f 70 3b 0a 09 09 09 |.ip_op =| op;....|
|000007b0| 72 65 74 75 72 6e 20 6f | 70 2d 3e 6f 70 5f 6e 75 |return o|p->op_nu|
|000007c0| 6d 3b 0a 09 09 7d 0a 09 | 09 6f 70 2b 2b 3b 0a 09 |m;...}..|.op++;..|
|000007d0| 7d 0a 09 69 70 5f 6f 70 | 20 3d 20 30 3b 0a 09 72 |}..ip_op| = 0;..r|
|000007e0| 65 74 75 72 6e 20 4f 50 | 45 52 41 4e 44 3b 0a 7d |eturn OP|ERAND;.}|
|000007f0| 0a 0a 6c 6f 6e 67 0a 6e | 75 6d 28 73 29 0a 09 72 |..long.n|um(s)..r|
|00000800| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 73 3b |egister |char *s;|
|00000810| 0a 7b 0a 09 6c 6f 6e 67 | 20 6c 20 3d 20 30 3b 0a |.{..long| l = 0;.|
|00000820| 09 6c 6f 6e 67 20 73 69 | 67 6e 20 3d 20 31 3b 0a |.long si|gn = 1;.|
|00000830| 0a 09 69 66 20 28 2a 73 | 20 3d 3d 20 27 5c 30 27 |..if (*s| == '\0'|
|00000840| 29 0a 09 09 73 79 6e 74 | 61 78 28 29 3b 0a 09 69 |)...synt|ax();..i|
|00000850| 66 20 28 2a 73 20 3d 3d | 20 27 2d 27 29 20 7b 0a |f (*s ==| '-') {.|
|00000860| 09 09 73 69 67 6e 20 3d | 20 2d 31 3b 0a 09 09 73 |..sign =| -1;...s|
|00000870| 2b 2b 3b 0a 09 7d 0a 09 | 77 68 69 6c 65 20 28 2a |++;..}..|while (*|
|00000880| 73 20 3e 3d 20 27 30 27 | 20 26 26 20 2a 73 20 3c |s >= '0'| && *s <|
|00000890| 3d 20 27 39 27 29 0a 09 | 09 6c 20 3d 20 6c 20 2a |= '9')..|.l = l *|
|000008a0| 20 31 30 20 2b 20 2a 73 | 2b 2b 20 2d 20 27 30 27 | 10 + *s|++ - '0'|
|000008b0| 3b 0a 09 69 66 20 28 2a | 73 20 21 3d 20 27 5c 30 |;..if (*|s != '\0|
|000008c0| 27 29 0a 09 09 73 79 6e | 74 61 78 28 29 3b 0a 09 |')...syn|tax();..|
|000008d0| 72 65 74 75 72 6e 20 73 | 69 67 6e 20 2a 20 6c 3b |return s|ign * l;|
|000008e0| 0a 7d 0a 0a 73 79 6e 74 | 61 78 28 29 0a 7b 0a 09 |.}..synt|ax().{..|
|000008f0| 77 72 69 74 65 28 32 2c | 20 70 72 6f 67 2c 20 73 |write(2,| prog, s|
|00000900| 74 72 6c 65 6e 28 70 72 | 6f 67 29 29 3b 0a 09 77 |trlen(pr|og));..w|
|00000910| 72 69 74 65 28 32 2c 20 | 22 3a 20 73 79 6e 74 61 |rite(2, |": synta|
|00000920| 78 20 65 72 72 6f 72 5c | 6e 22 2c 20 31 35 29 3b |x error\|n", 15);|
|00000930| 0a 09 65 78 69 74 28 31 | 29 3b 0a 7d 0a 0a 6c 6f |..exit(1|);.}..lo|
|00000940| 6e 67 0a 65 78 70 72 28 | 6e 2c 20 70 72 69 6f 29 |ng.expr(|n, prio)|
|00000950| 0a 7b 0a 09 6c 6f 6e 67 | 20 72 65 73 3b 0a 0a 09 |.{..long| res;...|
|00000960| 69 66 20 28 6e 20 3d 3d | 20 45 4f 49 29 0a 09 09 |if (n ==| EOI)...|
|00000970| 73 79 6e 74 61 78 28 29 | 3b 0a 09 69 66 20 28 6e |syntax()|;..if (n|
|00000980| 20 3d 3d 20 4c 50 41 52 | 45 4e 29 20 7b 0a 09 09 | == LPAR|EN) {...|
|00000990| 72 65 73 20 3d 20 65 78 | 70 72 28 6c 65 78 28 2a |res = ex|pr(lex(*|
|000009a0| 2b 2b 69 70 29 2c 20 4d | 41 58 50 52 49 4f 29 3b |++ip), M|AXPRIO);|
|000009b0| 0a 09 09 69 66 20 28 6c | 65 78 28 2a 2b 2b 69 70 |...if (l|ex(*++ip|
|000009c0| 29 20 21 3d 20 52 50 41 | 52 45 4e 29 0a 09 09 09 |) != RPA|REN)....|
|000009d0| 73 79 6e 74 61 78 28 29 | 3b 0a 09 09 72 65 74 75 |syntax()|;...retu|
|000009e0| 72 6e 20 72 65 73 3b 0a | 09 7d 0a 09 69 66 20 28 |rn res;.|.}..if (|
|000009f0| 6e 20 21 3d 20 4f 50 45 | 52 41 4e 44 29 0a 09 09 |n != OPE|RAND)...|
|00000a00| 73 79 6e 74 61 78 28 29 | 3b 0a 09 69 66 20 28 70 |syntax()|;..if (p|
|00000a10| 72 69 6f 20 3d 3d 20 30 | 29 0a 09 09 72 65 74 75 |rio == 0|)...retu|
|00000a20| 72 6e 20 6e 75 6d 28 2a | 69 70 29 3b 0a 09 72 65 |rn num(*|ip);..re|
|00000a30| 73 20 3d 20 65 78 70 72 | 28 6e 2c 20 70 72 69 6f |s = expr|(n, prio|
|00000a40| 20 2d 20 31 29 3b 0a 09 | 77 68 69 6c 65 20 28 28 | - 1);..|while ((|
|00000a50| 6e 20 3d 20 6c 65 78 28 | 2a 2b 2b 69 70 29 29 20 |n = lex(|*++ip)) |
|00000a60| 26 26 20 69 70 5f 6f 70 | 20 26 26 20 69 70 5f 6f |&& ip_op| && ip_o|
|00000a70| 70 2d 3e 6f 70 5f 70 72 | 69 6f 20 3d 3d 20 70 72 |p->op_pr|io == pr|
|00000a80| 69 6f 29 0a 09 09 72 65 | 73 20 3d 20 65 76 61 6c |io)...re|s = eval|
|00000a90| 28 72 65 73 2c 20 6e 2c | 20 65 78 70 72 28 6c 65 |(res, n,| expr(le|
|00000aa0| 78 28 2a 2b 2b 69 70 29 | 2c 20 70 72 69 6f 20 2d |x(*++ip)|, prio -|
|00000ab0| 20 31 29 29 3b 0a 09 69 | 70 2d 2d 3b 0a 09 72 65 | 1));..i|p--;..re|
|00000ac0| 74 75 72 6e 20 72 65 73 | 3b 0a 7d 0a 0a 6c 6f 6e |turn res|;.}..lon|
|00000ad0| 67 0a 65 76 61 6c 28 6c | 31 2c 20 6f 70 2c 20 6c |g.eval(l|1, op, l|
|00000ae0| 32 29 0a 09 6c 6f 6e 67 | 20 6c 31 2c 20 6c 32 3b |2)..long| l1, l2;|
|00000af0| 0a 7b 0a 09 73 77 69 74 | 63 68 20 28 6f 70 29 20 |.{..swit|ch (op) |
|00000b00| 7b 0a 09 63 61 73 65 20 | 4f 52 3a 0a 09 09 72 65 |{..case |OR:...re|
|00000b10| 74 75 72 6e 20 6c 31 20 | 3f 20 6c 31 20 3a 20 6c |turn l1 |? l1 : l|
|00000b20| 32 3b 0a 09 63 61 73 65 | 20 41 4e 44 3a 0a 09 09 |2;..case| AND:...|
|00000b30| 72 65 74 75 72 6e 20 28 | 6c 31 20 26 26 20 6c 32 |return (|l1 && l2|
|00000b40| 29 20 3f 20 6c 31 20 3a | 20 30 3b 0a 09 63 61 73 |) ? l1 :| 0;..cas|
|00000b50| 65 20 4c 54 3a 0a 09 09 | 72 65 74 75 72 6e 20 6c |e LT:...|return l|
|00000b60| 31 20 3c 20 6c 32 3b 0a | 09 63 61 73 65 20 4c 45 |1 < l2;.|.case LE|
|00000b70| 3a 0a 09 09 72 65 74 75 | 72 6e 20 6c 31 20 3c 3d |:...retu|rn l1 <=|
|00000b80| 20 6c 32 3b 0a 09 63 61 | 73 65 20 45 51 3a 0a 09 | l2;..ca|se EQ:..|
|00000b90| 09 72 65 74 75 72 6e 20 | 6c 31 20 3d 3d 20 6c 32 |.return |l1 == l2|
|00000ba0| 3b 0a 09 63 61 73 65 20 | 4e 45 3a 0a 09 09 72 65 |;..case |NE:...re|
|00000bb0| 74 75 72 6e 20 6c 31 20 | 21 3d 20 6c 32 3b 0a 09 |turn l1 |!= l2;..|
|00000bc0| 63 61 73 65 20 47 45 3a | 0a 09 09 72 65 74 75 72 |case GE:|...retur|
|00000bd0| 6e 20 6c 31 20 3e 3d 20 | 6c 32 3b 0a 09 63 61 73 |n l1 >= |l2;..cas|
|00000be0| 65 20 47 54 3a 0a 09 09 | 72 65 74 75 72 6e 20 6c |e GT:...|return l|
|00000bf0| 31 20 3e 20 6c 32 3b 0a | 09 63 61 73 65 20 50 4c |1 > l2;.|.case PL|
|00000c00| 55 53 3a 0a 09 09 72 65 | 74 75 72 6e 20 6c 31 20 |US:...re|turn l1 |
|00000c10| 2b 20 6c 32 3b 0a 09 63 | 61 73 65 20 4d 49 4e 55 |+ l2;..c|ase MINU|
|00000c20| 53 3a 0a 09 09 72 65 74 | 75 72 6e 20 6c 31 20 2d |S:...ret|urn l1 -|
|00000c30| 20 6c 32 3b 0a 09 63 61 | 73 65 20 54 49 4d 45 53 | l2;..ca|se TIMES|
|00000c40| 3a 0a 09 09 72 65 74 75 | 72 6e 20 6c 31 20 2a 20 |:...retu|rn l1 * |
|00000c50| 6c 32 3b 0a 09 63 61 73 | 65 20 44 49 56 3a 0a 09 |l2;..cas|e DIV:..|
|00000c60| 09 72 65 74 75 72 6e 20 | 6c 31 20 2f 20 6c 32 3b |.return |l1 / l2;|
|00000c70| 0a 09 63 61 73 65 20 4d | 4f 44 3a 0a 09 09 72 65 |..case M|OD:...re|
|00000c80| 74 75 72 6e 20 6c 31 20 | 25 20 6c 32 3b 0a 09 7d |turn l1 |% l2;..}|
|00000c90| 0a 09 66 61 74 61 6c 28 | 29 3b 0a 7d 0a 0a 66 61 |..fatal(|);.}..fa|
|00000ca0| 74 61 6c 28 29 0a 7b 0a | 09 77 72 69 74 65 28 32 |tal().{.|.write(2|
|00000cb0| 2c 20 22 66 61 74 61 6c | 5c 6e 22 2c 20 36 29 3b |, "fatal|\n", 6);|
|00000cc0| 0a 09 65 78 69 74 28 31 | 29 3b 0a 7d 0a 0a 0a |..exit(1|);.}... |
+--------+-------------------------+-------------------------+--------+--------+